"""使用list和tuple"""
classmates = ['zhangsan', 'lisi', 'wangwu']
print(classmates)
# 用len()函数可以获得list元素的个数
print(len(classmates))
# 用索引来访问list中每一个位置的元素
print(classmates[0])
print(classmates[2])
print(classmates[-1])
# 往list中追加元素到末尾
classmates.append('wangermazi')
print(classmates)
# 把元素插入到指定的位置
classmates.insert(1, 'zhangfei')
print(classmates)
# 删除list末尾的元素
classmates.pop()
print(classmates)
# 删除指定位置的元素
classmates.pop(1)
print(classmates)
# 把某个元素替换成别的元素，可以直接赋值给对应的索引位置
classmates[0] = 'zhangfei'
print(classmates)
# list里面的元素的数据类型也可以不同
l = ['apple', 3, True]
print(l)
# list元素也可以是另一个list
s = ['python', 'java', ['asp', 'php'], '01_hello']
print(s)
p = ['test', '01_hello']
s = ['python', 'java', p]
print(s)
# 空的list，它的长度为0
l = []
print(len(l))

# 另一种有序列表叫元组：tuple。tuple和list非常类似，但是tuple一旦初始化就不能修改
# 现在，classmates这个tuple不能变了，它也没有append()，insert()这样的方法。其他获取元素的方法和list是一样的，你可以正常地使用classmates[0]，classmates[-1]，但不能赋值成另外的元素。
classmates = ('zhangsan', 'lisi', 'wangwu')
print(classmates)
t = (1, 2)
print(t)
t = ()
print(t)

# 定义的不是tuple，是1这个数！
t = (1)
print(t)
# 所以，只有1个元素的tuple定义时必须加一个逗号,，来消除歧义
t = (1, )
print(t)
# “可变的”tuple
t = ('a', 'b', ['A', 'B'])
t[2][0] = 'X'
t[2][1] = 'Y'
print(t)

L = [
    ['Apple', 'Google', 'Microsoft'],
    ['Java', 'Python', 'Ruby', 'PHP'],
    ['Adam', 'Bart', 'Lisa']
]

print(L[0][0])
print(L[1][1])
print(L[2][2])



